package com.kefu.smartCall.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;

@Data
@TableName(value="sc_task")
@ApiModel(description = "智能外呼任务表")
public class ScTask implements Serializable {
    /**
     * 主键
     */
    @TableId(value="task_id")
    @NotEmpty
    @ApiModelProperty(value = "主键")
    private String taskId;

    /**
     * 创建人
     */
    @TableField(value = "create_user")
    @ApiModelProperty(value = "创建人", name = "createUser")
    private String createUser;

    /**
     * 创建人名
     */
    @TableField(value = "create_name")
    @ApiModelProperty(value = "创建人名", name = "createName")
    private String createName;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty(value = "创建时间", name = "createTime")
    private Long createTime;

    /**
     * 更新人
     */
    @TableField(value = "update_user")
    @ApiModelProperty(value = "更新人", name = "updateUser")
    private String updateUser;

    /**
     * 更新人名
     */
    @TableField(value = "update_name")
    @ApiModelProperty(value = "更新人名", name = "updateName")
    private String updateName;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    @ApiModelProperty(value = "更新时间", name = "updateTime")
    private Long updateTime;

    /**
     * 租户
     */
    @TableField(value = "tenant_id")
    @ApiModelProperty(value = "租户", name = "tenantId")
    private String tenantId;

    /**
     * 外呼任务名
     */
    @TableField(value = "task_name")
    @ApiModelProperty(value = "外呼任务名", name = "taskName")
    private String taskName;

    /**
     * 外呼状态
     */
    @TableField(value = "task_status")
    @ApiModelProperty(value = "外呼状态 0 未开始，1进行中，2暂停，3 结束", name = "taskStatus")
    private Integer taskStatus;

    /**
     * 任务结束时间
     */
    @TableField(value = "task_end_time")
    @ApiModelProperty(value = "任务结束时间", name = "taskEndTime")
    private Long taskEndTime;

    /**
     * 任务有效期 1=自定义，2=永久
     */
    @TableField(value = "task_valid")
    @ApiModelProperty(value = "任务有效期 1=自定义，2=永久", name = "taskValid")
    private Integer taskValid;

    /**
     * 任务结束有效期
     */
    @TableField(value = "task_valid_end_time")
    @ApiModelProperty(value = "任务结束有效期", name = "taskValidEndTime")
    private Long taskValidEndTime;

    /**
     * 任务开始有效期
     */
    @TableField(value = "task_valid_start_time")
    @ApiModelProperty(value = "任务开始有效期", name = "taskValidStartTime")
    private Long taskValidStartTime;

    /**
     * 机器人个数
     */
    @TableField(value = "robot_number")
    @ApiModelProperty(value = "机器人个数", name = "robotNumber")
    private Integer robotNumber;

    /**
     * 拨打时间段
     */
    @TableField(value = "call_time_slot")
    @ApiModelProperty(value = "拨打时间段", name = "callTimeSlot")
    private String callTimeSlot;

    /**
     * 外呼显示号码
     */
    @TableField(value = "call_out_show_number")
    @ApiModelProperty(value = "外呼显示号码，多个逗号分隔", name = "callOutShowNumber")
    private String callOutShowNumber;

    /**
     * 模板ID
     */
    @TableField(value = "template_id")
    @ApiModelProperty(value = "模板ID", name = "templateId")
    private String templateId;

    /**
     * 模板名
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "模板名", name = "templateName")
    private String templateName;

    /**
     * 隐藏客户手机号位置 0=不影藏，1=影藏中间四位，2=影藏后四位
     */
    @TableField(value = "hide_phone_position")
    @ApiModelProperty(value = "隐藏客户手机号位置 0=不影藏，1=影藏中间四位，2=影藏后四位", name = "hidePhonePosition")
    private Integer hidePhonePosition;

    /**
     * 转人工技能组id
     */
    @ApiModelProperty(value = "转人工技能组id", name = "turnGroupId")
    private String turnGroupId;

    /**
     * 空闲坐席配比
     */
    @ApiModelProperty(value = "空闲坐席配比", name = "freeAgentRate")
    private Integer freeAgentRate;

    /**
     * 类型
     */
    @ApiModelProperty(value = "智能外呼1，智能接待2", name = "callType")
    private Integer callType;

    /**
     * 遇忙拨打次数
     */
    @ApiModelProperty(value = "遇忙重复拨打次数", name = "busyCount")
    private Integer busyCount;

    /**
     * 大模型筛选状态
     */
    @TableField(value = "search_state")
    @ApiModelProperty(value = "大模型筛选进度 0=进行中，1=已完成", name = "searchState")
    private Integer searchState;
    private static final long serialVersionUID = 1L;
}